package polymorphic;

public class Test2 {
    public static void main(String[] args) {
        //目标: 掌握使用多态的好处,以及多态下的类型转换问题.

        Teacher t = new Teacher();
        go(t);
        Student s = new Student();
        go(s);
        People p1 = new Student();//这种写法就是类型转化吧,小范围类型转化为大范围类型,并且转化的类型之间必须存在继承或实现的关系
        go(p1);
        People p2 = new Teacher();
        go(p2);


    }
    //使用父类创建变量可以接受一切子类变量,p体现的就是多态的特点,但是p不可以调用子类特有的方法,想要使用特有的方法就得强制转化
    public static void go(People p) {
        p.run();
    }
}
